<%#
 Copyright 2008 Steven Barth <steven@midlink.org>
 Copyright 2008-2015 Jo-Philipp Wich <jow@openwrt.org>
 Licensed to the public under the Apache License 2.0.
-%>

<%+header%>

<h2 name="content"><%:Flash operations%></h2>

<ul class="cbi-tabmenu">
	<li class="cbi-tab"><a href="#"><%:Actions%></a></li>
	<li class="cbi-tab-disabled"><a href="<%=REQUEST_URI%>/backupfiles"><%:Configuration%></a></li>
</ul>

<fieldset class="cbi-section">

	<fieldset class="cbi-section">
		<legend><%:Backup / Restore%></legend>
		<div class="cbi-section-descr"><%:Click "Generate archive" to download a tar archive of the current configuration files. To reset the firmware to its initial state, click "Perform reset" (only possible with squashfs images).%></div>
		<div class="cbi-section-node">
			<form class="inline" method="post" action="<%=url('admin/system/flashops/backup')%>">
				<input type="hidden" name="token" value="<%=token%>" />
				<div class="cbi-value<% if not reset_avail then %> cbi-value-last<% end %>">
					<label class="cbi-value-title" for="image"><%:Download backup%>:</label>
					<div class="cbi-value-field">
						<input class="cbi-button cbi-button-apply" type="submit" name="backup" value="<%:Generate archive%>" />
					</div>
				</div>
			</form>
			<% if reset_avail then %>
			<form class="inline" method="post" action="<%=url('admin/system/flashops/reset')%>">
				<input type="hidden" name="token" value="<%=token%>" />
				<div class="cbi-value cbi-value-last">
					<label class="cbi-value-title"><%:Reset to defaults%>:</label>
					<div class="cbi-value-field">
						<input onclick="return confirm('<%:Really reset all changes?%>')" class="cbi-button cbi-button-reset" type="submit" name="reset" value="<%:Perform reset%>" />
					</div>
				</div>
			</form>
			<% end %>
		</div>
	<% local mtds = require("luci.sys").mtds(); if #mtds > 0 then -%>
	<legend><%:Save mtdblock contents%></legend>
	<div class="cbi-section-descr"><%:Click "Save mtdblock" to download specified mtdblock file. (NOTE: THIS FEATURE IS FOR PROFESSIONALS! )%></div>
	<div class="cbi-section-node">
		<form class="inline" method="post" action="<%=url('admin/system/flashops/backupmtdblock')%>">
			<input type="hidden" name="token" value="<%=token%>" />
			<div class="cbi-value">
				<label class="cbi-value-title" for="mtdblockname"><%:Choose mtdblock%></label>
				<div class="cbi-value-field">
					<select class="cbi-input-select" data-update="change" name="mtdblockname" id="mtdblockname">
						<% for i, key in ipairs(mtds) do
							if key and key.name ~= "rootfs_data" then -%>
								<option<%=
									attr("id", "mtdblockname-" .. key.name) ..
									attr("value", key.name .. '/'.. key.size .. '/' .. i - 1) ..
									attr("data-index", i) ..
									ifattr(key.name == "linux" or key.name == "firmware", "selected", "selected")
								%>><%=pcdata(key.name)%></option>
						<%	end
						 end -%>
					</select>
				</div>
			</div>
			<div class="cbi-value cbi-value-last<% if reset_avail then %> cbi-value-error<% end %>">
				<label class="cbi-value-title" for="image"><%:Download mtdblock%></label>
				<div class="cbi-value-field">
					<input class="cbi-button cbi-button-apply" type="submit" value="<%:Save mtdblock%>" />
				</div>
			</div>
		</form>
	</div>
	<% end %>
		<br />
		<div class="cbi-section-descr"><%:To restore configuration files, you can upload a previously generated backup archive here.%></div>
		<div class="cbi-section-node">
			<form class="inline" method="post" action="<%=url('admin/system/flashops/restore')%>" enctype="multipart/form-data">
				<div class="cbi-value cbi-value-last">
					<label class="cbi-value-title" for="archive"><%:Restore backup%>:</label>
					<div class="cbi-value-field">
						<input type="hidden" name="token" value="<%=token%>" />
						<input type="file" name="archive" id="archive" />
						<input type="submit" class="cbi-button cbi-input-apply" name="restore" value="<%:Upload archive...%>" />
					</div>
				</div>
			</form>
		</div>
	</fieldset>

	<br />

	<fieldset class="cbi-section">
		<legend><%:Flash new firmware image%></legend>
		<% if upgrade_avail then %>
			<form method="post" action="<%=url('admin/system/flashops/sysupgrade')%>" enctype="multipart/form-data">
				<input type="hidden" name="token" value="<%=token%>" />
				<div class="cbi-section-descr"><%:Upload a sysupgrade-compatible image here to replace the running firmware. Check "Keep settings" to retain the current configuration (requires a compatible firmware image).%></div>
				<div class="cbi-section-node">
					<div class="cbi-value">
						<label class="cbi-value-title" for="keep"><%:Keep settings%>:</label>
						<div class="cbi-value-field">
							<input type="checkbox" name="keep" id="keep" checked="checked" />
						</div>
					</div>
					<div class="cbi-value cbi-value-last<% if image_invalid then %> cbi-value-error<% end %>">
						<label class="cbi-value-title" for="image"><%:Image%>:</label>
						<div class="cbi-value-field">
							<input type="file" name="image" id="image" />
							<input type="submit" class="cbi-button cbi-input-apply" value="<%:Flash image...%>" />
						</div>
					</div>
				</div>
				<% if image_invalid then %>
					<div class="cbi-section-error"><%:The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform. %></div>
				<% end %>
			</form>
		<% else %>
			<div class="cbi-section-descr"><%:Sorry, there is no sysupgrade support present; a new firmware image must be flashed manually. Please refer to the wiki for device specific install instructions.%></div>
		<% end %>
	</fieldset>

</fieldset>

<%+footer%>
